home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagg_m.zip / MISC.SWG / 0005_GLOBALS.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  19KB  |  352 lines

  1. Unit globals;
  2.  
  3. { Use this Unit For Procedures, Functions and Variables that every Program you
  4.   Write will share.
  5. }
  6.  
  7. Interface
  8.  
  9. Uses 
  10.   Dos;
  11.   
  12. Type
  13.   str1 = String[1]; str2 = String[2]; str3 = String[3];
  14.   str4 = String[4]; str5 = String[5]; str6 = String[6];
  15.   str7 = String[7]; str8 = String[8]; str9 = String[9];
  16.   str10 = String[10]; str11 = String[11]; str12 = String[12];
  17.   str13 = String[13]; str14 = String[14]; str15 = String[15];
  18.   str16 = String[16]; str17 = String[17]; str18 = String[18];
  19.   str19 = String[19]; str20 = String[20]; str21 = String[21];
  20.   str22 = String[22]; str23 = String[23]; str24 = String[24];
  21.   str25 = String[25]; str26 = String[26]; str27 = String[27];
  22.   str28 = String[28]; str29 = String[29]; str30 = String[30];
  23.   str31 = String[31]; str32 = String[32]; str33 = String[33];
  24.   str34 = String[34]; str35 = String[35]; str36 = String[36];
  25.   str37 = String[37]; str38 = String[38]; str39 = String[39];
  26.   str40 = String[40]; str41 = String[41]; str42 = String[42];
  27.   str43 = String[43]; str44 = String[44]; str45 = String[45];
  28.   str46 = String[46]; str47 = String[47]; str48 = String[48];
  29.   str49 = String[49]; str50 = String[50]; str51 = String[51];
  30.   str52 = String[52]; str53 = String[53]; str54 = String[54];
  31.   str55 = String[55]; str56 = String[56]; str57 = String[57];
  32.   str58 = String[58]; str59 = String[59]; str60 = String[60];
  33.   str61 = String[61]; str62 = String[62]; str63 = String[63];
  34.   str64 = String[64]; str65 = String[65]; str66 = String[66];
  35.   str67 = String[67]; str68 = String[68]; str69 = String[69];
  36.   str70 = String[70]; str71 = String[71]; str72 = String[72];
  37.   str73 = String[73]; str74 = String[74]; str75 = String[75];
  38.   str76 = String[76]; str77 = String[77]; str78 = String[78];
  39.   str79 = String[79]; str80 = String[80]; str81 = String[81];
  40.   str82 = String[82]; str83 = String[83]; str84 = String[84];
  41.   str85 = String[85]; str86 = String[86]; str87 = String[87];
  42.   str88 = String[88]; str89 = String[89]; str90 = String[90];
  43.   str91 = String[91]; str92 = String[92]; str93 = String[93];
  44.   str94 = String[94]; str95 = String[95]; str96 = String[96];
  45.   str97 = String[97]; str98 = String[98]; str99 = String[99];
  46.   str100 = String[100]; str101 = String[101]; str102 = String[102];
  47.   str103 = String[103]; str104 = String[104]; str105 = String[105];
  48.   str106 = String[106]; str107 = String[107]; str108 = String[108];
  49.   str109 = String[109]; str110 = String[110]; str111 = String[111];
  50.   str112 = String[112]; str113 = String[113]; str114 = String[114];
  51.   str115 = String[115]; str116 = String[116]; str117 = String[117];
  52.   str118 = String[118]; str119 = String[119]; str120 = String[120];
  53.   str121 = String[121]; str122 = String[122]; str123 = String[123];
  54.   str124 = String[124]; str125 = String[125]; str126 = String[126];
  55.   str127 = String[127]; str128 = String[128]; str129 = String[129];
  56.   str130 = String[130]; str131 = String[131]; str132 = String[132];
  57.   str133 = String[133]; str134 = String[134]; str135 = String[135];
  58.   str136 = String[136]; str137 = String[137]; str138 = String[138];
  59.   str139 = String[139]; str140 = String[140]; str141 = String[141];
  60.   str142 = String[142]; str143 = String[143]; str144 = String[144];
  61.   str145 = String[145]; str146 = String[146]; str147 = String[147];
  62.   str148 = String[148]; str149 = String[149]; str150 = String[150];
  63.   str151 = String[151]; str152 = String[152]; str153 = String[153];
  64.   str154 = String[154]; str155 = String[155]; str156 = String[156];
  65.   str157 = String[157]; str158 = String[158]; str159 = String[159];
  66.   str160 = String[160]; str161 = String[161]; str162 = String[162];
  67.   str163 = String[163]; str164 = String[164]; str165 = String[165];
  68.   str166 = String[166]; str167 = String[167]; str168 = String[168];
  69.   str169 = String[169]; str170 = String[170]; str171 = String[171];
  70.   str172 = String[172]; str173 = String[173]; str174 = String[174];
  71.   str175 = String[175]; str176 = String[176]; str177 = String[177];
  72.   str178 = String[178]; str179 = String[179]; str180 = String[180];
  73.   str181 = String[181]; str182 = String[182]; str183 = String[183];
  74.   str184 = String[184]; str185 = String[185]; str186 = String[186];
  75.   str187 = String[187]; str188 = String[188]; str189 = String[189];
  76.   str190 = String[190]; str191 = String[191]; str192 = String[192];
  77.   str193 = String[193]; str194 = String[194]; str195 = String[195];
  78.   str196 = String[196]; str197 = String[197]; str198 = String[198];
  79.   str199 = String[199]; str200 = String[200]; str201 = String[201];
  80.   str202 = String[202]; str203 = String[203]; str204 = String[204];
  81.   str205 = String[205]; str206 = String[206]; str207 = String[207];
  82.   str208 = String[208]; str209 = String[209]; str210 = String[210];
  83.   str211 = String[211]; str212 = String[212]; str213 = String[213];
  84.   str214 = String[214]; str215 = String[215]; str216 = String[216];
  85.   str217 = String[217]; str218 = String[218]; str219 = String[219];
  86.   str220 = String[220]; str221 = String[221]; str222 = String[222];
  87.   str223 = String[223]; str224 = String[224]; str225 = String[225];
  88.   str226 = String[226]; str227 = String[227]; str228 = String[228];
  89.   str229 = String[229]; str230 = String[230]; str231 = String[231];
  90.   str232 = String[232]; str233 = String[233]; str234 = String[234];
  91.   str235 = String[235]; str236 = String[236]; str237 = String[237];
  92.   str238 = String[238]; str239 = String[239]; str240 = String[240];
  93.   str241 = String[241]; str242 = String[242]; str243 = String[243];
  94.   str244 = String[244]; str245 = String[245]; str246 = String[246];
  95.   str247 = String[247]; str248 = String[248]; str249 = String[249];
  96.   str250 = String[250]; str251 = String[251]; str252 = String[252];
  97.   str253 = String[253]; str254 = String[254]; str255 = String[255];
  98.  
  99. Const
  100.   MaxWord    = $ffff;
  101.   MinWord    = 0;
  102.   MinInt     = Integer($8000);
  103.   MinLongInt = $80000000;
  104.   UseCfg     = True;
  105.  
  106.   {Color Constants:
  107.    Black     = 0; Blue   = 1; Green   = 2; Cyan   = 3; Red   = 4;
  108.    Magenta   = 5; Brown  = 6; LtGray  = 7;
  109.    DkGray    = 8; LtBlue = 9; LtGreen = A; LtCyan = B; LtRed = C;
  110.    LtMagenta = D; Yellow = E; White   = F
  111.    }
  112.  
  113. Const  Blink               = $80;
  114.  
  115.   {Screen color Constants}
  116. Const   BlackOnBlack       = $00;          BlueOnBlack        = $01;
  117. Const   BlackOnBlue        = $10;          BlueOnBlue         = $11;
  118. Const   BlackOnGreen       = $20;          BlueOnGreen        = $21;
  119. Const   BlackOnCyan        = $30;          BlueOnCyan         = $31;
  120. Const   BlackOnRed         = $40;          BlueOnRed          = $41;
  121. Const   BlackOnMagenta     = $50;          BlueOnMagenta      = $51;
  122. Const   BlackOnBrown       = $60;          BlueOnBrown        = $61;
  123. Const   BlackOnLtGray      = $70;          BlueOnLtGray       = $71;
  124. Const   GreenOnBlack       = $02;          CyanOnBlack        = $03;
  125. Const   GreenOnBlue        = $12;          CyanOnBlue         = $13;
  126. Const   GreenOnGreen       = $22;          CyanOnGreen        = $23;
  127. Const   GreenOnCyan        = $32;          CyanOnCyan         = $33;
  128. Const   GreenOnRed         = $42;          CyanOnRed          = $43;
  129. Const   GreenOnMagenta     = $52;          CyanOnMagenta      = $53;
  130. Const   GreenOnBrown       = $62;          CyanOnBrown        = $63;
  131. Const   GreenOnLtGray      = $72;          CyanOnLtGray       = $73;
  132. Const   RedOnBlue          = $14;          MagentaOnBlue      = $15;
  133. Const   RedOnGreen         = $24;          MagentaOnGreen     = $25;
  134. Const   RedOnCyan          = $34;          MagentaOnCyan      = $35;
  135. Const   RedOnRed           = $44;          MagentaOnRed       = $45;
  136. Const   RedOnMagenta       = $54;          MagentaOnMagenta   = $55;
  137. Const   RedOnBrown         = $64;          MagentaOnBrown     = $65;
  138. Const   RedOnLtGray        = $74;          MagentaOnLtGray    = $75;
  139. Const   BrownOnBlack       = $06;          LtGrayOnBlack      = $07;
  140. Const   BrownOnBlue        = $16;          LtGrayOnBlue       = $17;
  141. Const   BrownOnGreen       = $26;          LtGrayOnGreen      = $27;
  142. Const   BrownOnCyan        = $36;          LtGrayOnCyan       = $37;
  143. Const   BrownOnRed         = $46;          LtGrayOnRed        = $47;
  144. Const   BrownOnMagenta     = $56;          LtGrayOnMagenta    = $57;
  145. Const   BrownOnBrown       = $66;          LtGrayOnBrown      = $67;
  146. Const   BrownOnLtGray      = $76;          LtGrayOnLtGray     = $77;
  147. Const   DkGrayOnBlack      = $08;          LtBlueOnBlack      = $09;
  148. Const   DkGrayOnBlue       = $18;          LtBlueOnBlue       = $19;
  149. Const   DkGrayOnGreen      = $28;          LtBlueOnGreen      = $29;
  150. Const   DkGrayOnCyan       = $38;          LtBlueOnCyan       = $39;
  151. Const   DkGrayOnRed        = $48;          LtBlueOnRed        = $49;
  152. Const   DkGrayOnMagenta    = $58;          LtBlueOnMagenta    = $59;
  153. Const   DkGrayOnBrown      = $68;          LtBlueOnBrown      = $69;
  154. Const   DkGrayOnLtGray     = $78;          LtBlueOnLtGray     = $79;
  155. Const   LtGreenOnBlack     = $0A;          LtCyanOnBlack      = $0B;
  156. Const   LtGreenOnBlue      = $1A;          LtCyanOnBlue       = $1B;
  157. Const   LtGreenOnGreen     = $2A;          LtCyanOnGreen      = $2B;
  158. Const   LtGreenOnCyan      = $3A;          LtCyanOnCyan       = $3B;
  159. Const   LtGreenOnRed       = $4A;          LtCyanOnRed        = $4B;
  160. Const   LtGreenOnMagenta   = $5A;          LtCyanOnMagenta    = $5B;
  161. Const   LtGreenOnBrown     = $6A;          LtCyanOnBrown      = $6B;
  162. Const   LtGreenOnLtGray    = $7A;          LtCyanOnLtGray     = $7B;
  163. Const   LtRedOnBlue        = $1C;          LtMagentaOnBlue    = $1D;
  164. Const   LtRedOnGreen       = $2C;          LtMagentaOnGreen   = $2D;
  165. Const   LtRedOnCyan        = $3C;          LtMagentaOnCyan    = $3D;
  166. Const   LtRedOnRed         = $4C;          LtMagentaOnRed     = $4D;
  167. Const   LtRedOnMagenta     = $5C;          LtMagentaOnMagenta = $5D;
  168. Const   LtRedOnBrown       = $6C;          LtMagentaOnBrown   = $6D;
  169. Const   LtRedOnLtGray      = $7C;          LtMagentaOnLtGray  = $7D;
  170. Const   YellowOnBlack      = $0E;          WhiteOnBlack       = $0F;
  171. Const   YellowOnBlue       = $1E;          WhiteOnBlue        = $1F;
  172. Const   YellowOnGreen      = $2E;          WhiteOnGreen       = $2F;
  173. Const   YellowOnCyan       = $3E;          WhiteOnCyan        = $3F;
  174. Const   YellowOnRed        = $4E;          WhiteOnRed         = $4F;
  175. Const   YellowOnMagenta    = $5E;          WhiteOnMagenta     = $5F;
  176. Const   YellowOnBrown      = $6E;          WhiteOnBrown       = $6F;
  177. Const   YellowOnLtGray     = $7E;          WhiteOnLtGray      = $7F;
  178. Const   BlackOnDkGray     = Blink + $00;   BlueOnDkGray      = Blink + $01;
  179. Const   BlackOnLtBlue     = Blink + $10;   BlueOnLtBlue      = Blink + $11;
  180. Const   BlackOnLtGreen    = Blink + $20;   BlueOnLtGreen     = Blink + $21;
  181. Const   BlackOnLtCyan     = Blink + $30;   BlueOnLtCyan      = Blink + $31;
  182. Const   BlackOnLtRed      = Blink + $40;   BlueOnLtRed       = Blink + $41;
  183. Const   BlackOnLtMagenta  = Blink + $50;   BlueOnLtMagenta   = Blink + $51;
  184. Const   BlackOnYellow     = Blink + $60;   BlueOnYellow      = Blink + $61;
  185. Const   BlackOnWhite      = Blink + $70;   BlueOnWhite       = Blink + $71;
  186. Const   GreenOnDkGray     = Blink + $02;   CyanOnDkGray      = Blink + $03;
  187. Const   GreenOnLtBlue     = Blink + $12;   CyanOnLtBlue      = Blink + $13;
  188. Const   GreenOnLtGreen    = Blink + $22;   CyanOnLtGreen     = Blink + $23;
  189. Const   GreenOnLtCyan     = Blink + $32;   CyanOnLtCyan      = Blink + $33;
  190. Const   GreenOnLtRed      = Blink + $42;   CyanOnLtRed       = Blink + $43;
  191. Const   GreenOnLtMagenta  = Blink + $52;   CyanOnLtMagenta   = Blink + $53;
  192. Const   GreenOnYellow     = Blink + $62;   CyanOnYellow      = Blink + $63;
  193. Const   GreenOnWhite      = Blink + $72;   CyanOnWhite       = Blink + $73;
  194. Const   RedOnDkGray       = Blink + $04;   MagentaOnDkGray   = Blink + $05;
  195. Const   RedOnLtBlue       = Blink + $14;   MagentaOnLtBlue   = Blink + $15;
  196. Const   RedOnLtGreen      = Blink + $24;   MagentaOnLtGreen  = Blink + $25;
  197. Const   RedOnLtCyan       = Blink + $34;   MagentaOnLtCyan   = Blink + $35;
  198. Const   RedOnLtRed        = Blink + $44;   MagentaOnLtRed    = Blink + $45;
  199. Const   RedOnLtMagenta    = Blink + $54;   MagentaOnLtMagenta= Blink + $55;
  200. Const   RedOnYellow       = Blink + $64;   MagentaOnYellow   = Blink + $65;
  201. Const   RedOnWhite        = Blink + $74;   MagentaOnWhite    = Blink + $75;
  202. Const   BrownOnDkGray     = Blink + $06;   LtGrayOnDkGray    = Blink + $07;
  203. Const   BrownOnLtBlue     = Blink + $16;   LtGrayOnLtBlue    = Blink + $17;
  204. Const   BrownOnLtGreen    = Blink + $26;   LtGrayOnLtGreen   = Blink + $27;
  205. Const   BrownOnLtCyan     = Blink + $36;   LtGrayOnLtCyan    = Blink + $37;
  206. Const   BrownOnLtRed      = Blink + $46;   LtGrayOnLtRed     = Blink + $47;
  207. Const   BrownOnLtMagenta  = Blink + $56;   LtGrayOnLtMagenta = Blink + $57;
  208. Const   BrownOnYellow     = Blink + $66;   LtGrayOnYellow    = Blink + $67;
  209. Const   BrownOnWhite      = Blink + $76;   LtGrayOnWhite     = Blink + $77;
  210. Const   DkGrayOnDkGray    = Blink + $08;   LtBlueOnDkGray    = Blink + $09;
  211. Const   DkGrayOnLtBlue    = Blink + $18;   LtBlueOnLtBlue    = Blink + $19;
  212. Const   DkGrayOnLtGreen   = Blink + $28;   LtBlueOnLtGreen   = Blink + $29;
  213. Const   DkGrayOnLtCyan    = Blink + $38;   LtBlueOnLtCyan    = Blink + $39;
  214. Const   DkGrayOnLtRed     = Blink + $48;   LtBlueOnLtRed     = Blink + $49;
  215. Const   DkGrayOnLtMagenta = Blink + $58;   LtBlueOnLtMagenta = Blink + $59;
  216. Const   DkGrayOnYellow    = Blink + $68;   LtBlueOnYellow    = Blink + $69;
  217. Const   DkGrayOnWhite     = Blink + $78;   LtBlueOnWhite     = Blink + $79;
  218. Const   LtGreenOnDkGray   = Blink + $0A;   LtCyanOnDkGray    = Blink + $0B;
  219. Const   LtGreenOnLtBlue   = Blink + $1A;   LtCyanOnLtBlue    = Blink + $1B;
  220. Const   LtGreenOnLtGreen  = Blink + $2A;   LtCyanOnLtGreen   = Blink + $2B;
  221. Const   LtGreenOnLtCyan   = Blink + $3A;   LtCyanOnLtCyan    = Blink + $3B;
  222. Const   LtGreenOnLtRed    = Blink + $4A;   LtCyanOnLtRed     = Blink + $4B;
  223. Const   LtGreenOnLtMagenta= Blink + $5A;   LtCyanOnLtMagenta = Blink + $5B;
  224. Const   LtGreenOnYellow   = Blink + $6A;   LtCyanOnYellow    = Blink + $6B;
  225. Const   LtGreenOnWhite    = Blink + $7A;   LtCyanOnWhite     = Blink + $7B;
  226. Const   LtRedOnDkGray     = Blink + $0C;   LtMagentaOnDkGray = Blink + $0D;
  227. Const   LtRedOnLtBlue     = Blink + $1C;   LtMagentaOnLtBlue = Blink + $1D;
  228. Const   LtRedOnLtGreen    = Blink + $2C;   LtMagentaOnLtGreen= Blink + $2D;
  229. Const   LtRedOnLtCyan     = Blink + $3C;   LtMagentaOnLtCyan = Blink + $3D;
  230. Const   LtRedOnLtRed      = Blink + $4C;   LtMagentaOnLtRed  = Blink + $4D;
  231. Const   LtRedOnLtMagenta  = Blink + $5C;   LtMagentaOnLtMagenta= Blink + $5D;
  232. Const   LtRedOnYellow     = Blink + $6C;   LtMagentaOnYellow = Blink + $6D;
  233. Const   LtRedOnWhite      = Blink + $7C;   LtMagentaOnWhite  = Blink + $7D;
  234. Const   YellowOnDkGray    = Blink + $0E;   WhiteOnDkGray     = Blink + $0F;
  235. Const   YellowOnLtBlue    = Blink + $1E;   WhiteOnLtBlue     = Blink + $1F;
  236. Const   YellowOnLtGreen   = Blink + $2E;   WhiteOnLtGreen    = Blink + $2F;
  237. Const   YellowOnLtCyan    = Blink + $3E;   WhiteOnLtCyan     = Blink + $3F;
  238. Const   YellowOnLtRed     = Blink + $4E;   WhiteOnLtRed      = Blink + $4F;
  239. Const   YellowOnLtMagenta = Blink + $5E;   WhiteOnLtMagenta  = Blink + $5F;
  240. Const   YellowOnYellow    = Blink + $6E;   WhiteOnYellow     = Blink + $6F;
  241. Const   YellowOnWhite     = Blink + $7E;   WhiteOnWhite      = Blink + $7F;
  242.  
  243. Var
  244.   TempStr    : String;
  245.   TempStrLen : Byte Absolute TempStr;
  246.   
  247. Function Exist(fn: str80): Boolean;
  248. { Returns True if File fn exists in the current directory                    }
  249.  
  250. Function ExistsOnPath(Var fn: str80): Boolean;
  251. { Returns True if File fn exists in any directory specified in the current   }
  252. { path and changes fn to a fully qualified path/File.                        }
  253.  
  254. Function StrUpCase(s : String): String;
  255. { Returns an upper Case String from s. Applicable to the English language.   }
  256.  
  257. Function StrLowCase(s : String): String;
  258. { Returns a String = to s With all upper Case Characters converted to lower  }
  259.  
  260. Function Asc2Str(Var s; max: Byte): String;
  261. { Converts an ASCIIZ String to a Turbo Pascal String With a maximum length   }
  262. { of max Characters.                                                         }
  263.  
  264. Procedure Str2Asc(s: String; Var ascStr; max: Word);
  265. { Converts a TP String to an ASCIIZ String of no more than max length.       }
  266. { WARNinG:  No checks are made that there is sufficient room in destination  }
  267. {           Variable.                                                        }
  268.  
  269. Function LastPos(ch: Char; s: String): Byte;
  270. { Returns the last position of ch in s                                       }
  271.  
  272. Procedure CheckIO(a: Byte);
  273.  
  274. Implementation
  275.  
  276. Function Exist(fn: str80): Boolean;
  277.   begin
  278.     TempStrLen := 0;
  279.     TempStr    := FSearch(fn,'');
  280.     Exist      := TempStrLen <> 0;
  281.   end; { Exist }
  282.  
  283. Function ExistsOnPath(Var fn: str80): Boolean;
  284.   begin
  285.     TempStrLen   := 0;
  286.     TempStr      := FSearch(fn,GetEnv('PATH'));
  287.     ExistsOnPath := TempStrLen <> 0;
  288.     fn           := FExpand(TempStr);
  289.   end; { ExistsOnPath }
  290.  
  291. Function StrUpCase(s : String): String;
  292.   Var x : Byte;
  293.   begin
  294.     StrUpCase[0] := s[0];
  295.     For x := 1 to length(s) do
  296.       StrUpCase[x] := UpCase(s[x]);
  297.   end; { StrUpCase }
  298.  
  299. Function StrLowCase(s : String): String;
  300.   Var x : Byte;
  301.   begin
  302.     StrLowCase[0] := s[0];
  303.     For x := 1 to length(s) do
  304.       Case s[x] of
  305.       'a'..'z': StrLowCase[x] := chr(ord(s[x]) and $df);
  306.       else StrLowCase[x] := s[x];
  307.       end; { Case }
  308.   end; { StrLowCase }
  309.  
  310. Function Asc2Str(Var s; max: Byte): String;
  311.   Var stArray  : Array[1..255] of Char Absolute s;
  312.       len      : Integer;
  313.   begin
  314.     len        := pos(#0,stArray)-1;                       { Get the length }
  315.     if (len > max) or (len < 0) then               { length exceeds maximum }
  316.       len      := max;                                  { so set to maximum }
  317.     Asc2Str    := stArray;
  318.     Asc2Str[0] := chr(len);                                    { Set length }
  319.   end;  { Asc2Str }
  320.  
  321. Procedure Str2Asc(s: String; Var ascStr; max: Word);
  322.   begin
  323.     FillChar(AscStr,max,0);
  324.     if length(s) < max then
  325.       move(s[1],AscStr,length(s))
  326.     else
  327.       move(s[1],AscStr,max);
  328.   end; { Str2Asc }
  329.  
  330.  
  331. Function LastPos(ch: Char; s: String): Byte;
  332.   Var x : Word;
  333.   begin
  334.     x := succ(length(s));
  335.     Repeat
  336.       dec(x);
  337.     Until (s[x] = ch) or (x = 0);
  338.   end; { LastPos }
  339.  
  340. Procedure CheckIO(a: Byte);
  341.   Var e : Integer;
  342.   begin
  343.     e := Ioresult;
  344.     if e <> 0 then begin
  345.       Writeln('I/O error ',e,' section ',a);
  346.       halt(e);
  347.     end;
  348.   end; { CheckIO }
  349.  
  350. end. { Globals }
  351.   
  352.